今天先來規劃要使用Electron.Net來做什麼
主要完成四個功能
其中跟metaweblog通訊會使用到XmlRpc
技術,它可以讓我們藉由呼叫網路API方式獲取文章資料。
舉例:
在metablog實做GetPost接口,邏輯很簡單:
1.驗證帳號密碼
2.回傳指定文章資料
public WilderMinds.MetaWeblog.Post GetPost(string postid, string username, string password)
{
/*驗證帳號密碼*/
ValidateUser(username, password);
/*回傳文章資料*/
return _blog.GetPostById(postid);
}
接著使用C# - XML-RPC.Net套件
客戶端只需要實做metaWeblog.getPost
方法、三個參數(帳號、密碼、指定文章ID),就可以跟伺服器獲取指定文章資料。
public Post getPost(string postid, string username, string password)
{
return _metaweblogWeblogService.GetPost(postid, _username, _password)
}
接著要如何渲染就是.net core web的強項了,_layout
、HtmlHelper
都可以在Electron.Net中使用。
【舉例】
合併前面的讀取文章範例,使用熟悉的MVC架構來讀取文章,渲染在Post.cshtml頁面上:
namespace ElectronNETDemo.Controllers
{
public class BlogController : Controller
{
private static readonly MetaweblogWeblogService _metaweblogWeblogService = new MetaweblogWeblogService();
private static readonly string _username = "demo";
private static readonly string _password = "demo";
public IActionResult Post(string postid)
{
/*驗證帳號密碼*/
ValidateUser(_username, _password);
/*回傳文章資料*/
return View(_metaweblogWeblogService.GetPost(postid, _username, _password));
}
}
}
@model ElectronNETDemo.Models.Post
@{
ViewData["Title"] = "抓取Blog文章";
}
<div>
<h4>文章名稱 : @Model.title</h4>
<hr />
<div>文章簡介</div>
<div>@Model.mt_excerpt</div>
<hr />
</div>
登登登,就可以在桌面程式顯示Blog的文章啦!
能沿用.NET Core MVC開發桌面程式感覺真的舒服。